#include <iostream>

void may_throw()
{
    throw true;
}
auto non_block_throw = []
{
    may_throw();
};
void no_throw() noexcept
{
    return;
}

auto block_throw = []() noexcept
{
    no_throw();
};

int main()
{
    std::cout << std::boolalpha
              << "may_throw() noexcept? " << noexcept(may_throw()) << std::endl
              << "no_throw() noexcept? " << noexcept(no_throw()) << std::endl
              << "lmay_throw() noexcept? " << noexcept(non_block_throw()) << std::endl
              << "lno_throw() noexcept? " << noexcept(block_throw()) << std::endl;
    return  0;
}
